package 基础知识.数据结构;

import java.util.StringTokenizer;

public class Thedatatype {//数据类型

    public static void main(String[] args) {
        //八大基本类型

        //整数类型

        byte a = 12;
        short b = 123;
        int c = 1223;//最常用
        long d = 1564L;//long类型在数字后面加（L或l）用于区分

        //小数
        float e = 1.2F;//float类型在后面加(F或f)区分
        double f = 3.14159265354565;

        //字符
        char g = '他';//只能用单引号
        //char g1 = "t";

        //字符串 String 不是关键词，是类
        String h = "ger7gheyq";//只能用双引号
        //String h1 = '1gvasdv';

        //布尔类型
        boolean m = true;//只能是true或false
        boolean m1 = false;
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println(e);
        System.out.println(f);
        System.out.println(h);
        System.out.println(m);
        System.out.println(m1);


        System.out.println("====================================================================================");
        //整数扩展：进制    二进制(0b)    八进制(0)    十进制    十六进制(0x)
        int i = 10;
        int i1 = 0b10;
        int i2 = 010;
        int i3 = 0xA0;

        System.out.println(i);
        System.out.println(i1);
        System.out.println(i2);
        System.out.println(i3);

        System.out.println("====================================================================================");
        //浮点数扩展：
        //float ： 浮点数是有限的,离散的,有舍入误差,大约,接近但不等于
        //最好避免浮点数进行比较
        //最好避免浮点数进行比较
        //最好避免浮点数进行比较


        //银行如何算钱？用BigDecimal(数学工具类)
        float a1 = 0.1f;
        double a2 = 0.1;
        System.out.println(a1 == a2);

        float a3 = 2465f;
        float a4 = a3 + 1;
        System.out.println(a3);
        System.out.println(a4);
        System.out.println(a3 == a4);

        float a5 = 246545248f;
        float a6 = a5 + 1;
        System.out.println(a5);
        System.out.println(a6);
        System.out.println(a5 == a6);


        double w = 158927511644158484848444848484848.0;
        double w1 = w + 1;
        System.out.println(w == w1);


        //字符扩展
        //所有的字符本质还是数字
        //字符编码问题：Unicode（又称统一码、万国码、单一码）   两个字节  表示范围：u0000-uffff
        char x = 'a';
        char x1 = '中';
        char x2 = '\u0154'; /* \ u 转译为字符*/
        System.out.println(x);
        System.out.println((int) x);//强制转换

        System.out.println(x1);
        System.out.println((int) x1);//强制转换
        System.out.println((char) 111);
        System.out.println(x2);

        //转译字符
        //  \t 制表符
        //  \n 换行符
        System.out.println("holle\nwoerd");


        //字符串扩展
        /**
         * equals()比较的是对象的内容（区分字母的大小写格式）
         * 但是如果使用“==”比较两个对象时，比较的是两个对象的内存地址，所以不相等。
         * 即使它们内容相等，但是不同对象的内存地址也是不相同的
         */

        String as = new String("123456");
        String ad = new String("123456");
        System.out.println(as == ad);//new是创建一个新的地址,这里是比较地址

        String af = "123456";
        String ag = "123456";
        System.out.println(af == ag);


        //布尔扩展
        boolean fd = true;
        if (fd){

        }

    }
}
